// auth_service.dart
import 'dart:async';

class AuthService {
  // 单例模式
  static final AuthService _instance = AuthService._internal();
  factory AuthService() => _instance;
  AuthService._internal();

  // 登录状态变化的 Stream
  final StreamController<AuthStatus> _authStatusController =
  StreamController<AuthStatus>.broadcast();

  Stream<AuthStatus> get authStatusStream => _authStatusController.stream;

  // 发送重新登录通知
  void notifyReLoginRequired() {
    _authStatusController.add(AuthStatus.reLoginRequired);
  }

  // 发送登录成功通知
  void notifyLoginSuccess() {
    _authStatusController.add(AuthStatus.loggedIn);
  }

  // 发送登出通知
  void notifyLoggedOut() {
    _authStatusController.add(AuthStatus.loggedOut);
  }
  // 发送登出通知
  void notifyGoThree() {
    _authStatusController.add(AuthStatus.GoTHree);
  }

  void dispose() {
    _authStatusController.close();
  }
}

enum AuthStatus {
  loggedIn,
  reLoginRequired,
  loggedOut,
  GoTHree,
}
